В этой лекции через \(y_t\) будет обозначать наблюдаемый временной ряд, а \(\epsilon_t\) ненаблюдаемый процесс белого шума. Общим линеным процессом типа скользящего среднего называется процесс вида \(y_t=\epsilon_t+\Psi_1\epsilon_{t-1}+\Psi_2\epsilon_{t-2}+....+\Psi_n\epsilon_{t-n}+....\) Введем линейный оператор сдвига назад \(B: By_t=y_{t-1}\)
По индукции \(B^k: B^ky_t=y_{t-k}\)
Используя оператор сдвига, определение линеным процесса типа скользящего среднего будем записывать в операторном виде \(y_t=(1+\Psi_1B+\Psi_2B^2+.....)\epsilon_t= \Psi(B)\epsilon_t\)
Будем предполагать, что
\(\sum_{i=1}^{\infty}\Psi_i < \infty\)
Важный нетривиальный пример такого процесса это процесс, где все \(\Psi_i=\phi^i\), при \(-1<\phi<1\)
В этом случае
\(y_t= (1+\phi B+\phi^2B^2+...)\epsilon_t=\epsilon_t+\phi\epsilon_{t-1}+\phi^2\epsilon_{t-2}+...\)
Так как \(\epsilon_t\) - процесс белого шума \(E[\epsilon_t]=0\) поэтому
\(E[y_t]=E[\epsilon_t+\phi\epsilon_{t-1}+\phi^2\epsilon_{t-2}+...]= 0\)
Пусть \(D[\epsilon_t]=\sigma_{\epsilon}^2\) тогда
\(D[y_t]=D[\epsilon_t+\phi\epsilon_{t-1}+\phi^2\epsilon_{t-2}+...]= \sigma_{\epsilon}^2+\phi^2\sigma_{\epsilon}^2+\phi^4\sigma_{\epsilon}^2+... = \sigma_{\epsilon}^2(1+\phi^2+\phi^4+...)= \frac{\sigma_{\epsilon}^2}{1-\phi^2}\)
Вычислим автоковариационную и автокорреляционную функции процесса
\(c_1=cov(y_t,y_{t-1})= cov(\epsilon_t+\phi\epsilon_{t-1}+\phi^2\epsilon_{t-2}+...,\epsilon_{t-1}+\phi\epsilon_{t-2}+\phi^2\epsilon_{t-3}+...)= \phi\sigma_{\epsilon}^2(1+\phi^2+\phi^4+...)=\frac{\phi\sigma_{\epsilon}^2}{1-\phi^2}\)
\(corr(y_t,y_{t-1})= \frac{\phi\sigma_{\epsilon}^2}{1-\phi^2}/(\frac{\sigma_{\epsilon}^2}{1-\phi^2})= \phi\)
Аналогично вычислим
\(c_k=cov(y_t,y_{t-k})=\frac{\phi^k\sigma_{\epsilon}^2}{1-\phi^2}\)
\(\gamma_k=corr(y_t,y_{t-k})=\phi^k\)
Для произвольного линейного процесса скользящего среднего \(y_t=(1+\Psi_1B+\Psi_2B^2+.....)\epsilon_t= \Psi(B)\epsilon_t\) Нетрудно вычислить, что
\(E[y_t=0]\),
\(c_k=cov(y_t,y_{t-k})=\sigma_{\epsilon}^2\sum_{i=0}^{\infty}\Psi_i\Psi_{i+k}\)
Важно отметить, что ковариационная функция не зависит от \(t\) , зависит только от задержки \(k\) cледовательно это стационарный процесс с нулевым среднем. Для получения процесса с произвольным среднем \(\mu\) просто добавим \(\mu\) к правой части соотношения \(y_t=(1+\Psi_1B+\Psi_2B^2+.....)\epsilon_t+\mu= \Psi(B)\epsilon_t+\mu\)
В случае конечного числа \(\Psi_k\) отличных от нуля модель записывают в виде
\(y_t=\mu+\epsilon_t-\theta_1\epsilon_1- ...-\theta_q\epsilon_q\)
называют моделью скользящего среднего порядка \(q\) и обозначают \(MA(q)\)
Подробно рассмотрим модель скользящего среднего первого порядка с нулевым среднем \(y_t=\epsilon_t-\theta\epsilon_{t-1}\)
Cогласно проведенным выше вычислениям сразу запишем, что автоковариационная функция процесса \(y_t\)
\(c_0=D[y_t]= \sigma_{\epsilon}^2(1+\theta^2)\)
\(c_1=cov(y_t,y_{t-1})=-\sigma_{\epsilon}^2\theta\)
\(c_k = 0\) при \(|k|>1\)
автокорреляционная функция процесса \(y_t\)
\(\rho_0=1\)
\(\rho_1= -\theta/(1+\theta^2)\)
\(\rho_k= 0\) при \(|k|>1\)
Поведение процесса, выборочной и модельной (True ACF) автокорреляционной функции при различных параметрах \(\theta\) можно изучить в прилагаемом ниже фрейме. Понятие частной автокорреляционной функции (PACF) и спектра в курсе дано будет позднее
Пример моделирования MA(1) на R при \(\theta=0.9\)
library(fArma)
## Loading required package: timeDate
## Loading required package: timeSeries
## Loading required package: fBasics
##
## Rmetrics Package fBasics
## Analysing Markets and calculating Basic Statistics
## Copyright (C) 2005-2014 Rmetrics Association Zurich
## Educational Software for Financial Engineering and Computational Science
## Rmetrics is free software and comes with ABSOLUTELY NO WARRANTY.
## https://www.rmetrics.org --- Mail to: info@rmetrics.org
library(TSA)
## Loading required package: leaps
## Loading required package: locfit
## locfit 1.5-9.1 2013-03-22
## Loading required package: mgcv
## Loading required package: nlme
## This is mgcv 1.8-9. For overview type 'help("mgcv-package")'.
## Loading required package: tseries
##
## Attaching package: 'TSA'
## The following objects are masked from 'package:timeDate':
##
## kurtosis, skewness
## The following objects are masked from 'package:stats':
##
## acf, arima
## The following object is masked from 'package:utils':
##
## tar
theta <- 0.9
modelMA <- list(ma= theta)
ma1<-armaSim(modelMA,n=200)
matplot(ma1,main= "Simulated MA(1) process",type = "l",lwd=3,col="blue")
Для того чтобы визуально увидеть зависимость ряда от прошлого полезно строить график \(y_t\) от \(y_{t-1}\) и увидеть положительную корреляцию между ними
plot(ma1[,1,1],zlag(ma1[,1,1]), ylab = expression(y[t]),xlab = expression(y[t-1]),type='p',col = 'blue')
Корреляции между \(y_t\) от \(y_{t-2}\) уже не будет.
plot(ma1[,1,1],zlag(ma1[,1,1],2), ylab = expression(y[t]),xlab = expression(y[t-2]),type='p',col = 'blue')
Теперь рассмотрим процесс скользящего среднего произвольного порядка \(MA(q)\)
\(y_t=\epsilon_t-\theta_1\epsilon_{t-1}-...-\theta_q\epsilon_{t-q}\)
Для процесса \(y_t\) дисперсия
\(c_0=D[y_t]=\sigma_{\epsilon}^2(1+\theta_1^2+....+\theta_q^2)\)
автокорреляционная функция
\(\rho_k= \frac{-\theta_{k}+\theta_{k-1}\theta_{1}-\theta_{k-2}\theta_{2}+\theta_{k-q}\theta_{q}}{(1+\theta_1^2+....+\theta_q^2)}\) при \(k=1,...,q\)
\(\rho_k=0\) при \(k>q\)
Поведение процесса, выборочной и модельной (True ACF) автокорреляционной функции при различных параметрах \(\theta_1,\theta_2,\theta_3,\) можно изучить в прилагаемом ниже фрейме на примере процесса \(MA(3)\).
Название происходит от регрессии самого на себя. Процесс вида
\(y_t= \phi_1y_{t-1}+\phi_2y_{t-2}+...+\phi_py_{t-p}+\epsilon_t\)
назвается процессом авторегрессии порядка \(p\) обозначается \(AR(p)\). Запись с использованием оператора сдига назад \(B\) и в операторной форме
\((1 - \phi_1B+\phi_2B^2-...- \phi_pB^p) y_t=\phi(B)y_t=\epsilon_t\)
Пусть стационарный процесс c нулевым среднем представим в виде
\(y_t= =\phi y_{t-1}+\epsilon_t\)
или, используя оператор сдвига
\(\phi(B)x_t = \epsilon_t\)
где \(\phi(B)=1-\phi B\)
Вычислим дисперсию \(c_0=D[y_t]\)
\(c_0=\phi^2c_0+\sigma_{\epsilon}^2\)
Умножая выражение для процесса на \(y_{t-k}\) и ,беря математическое ожидание от обеих частей получим выражение для ACF процесса
\(E[y_ty_{t-k}]= \phi E[y_{t-1}y_{t-k}]+E[\epsilon_ty_{t-k}]\)
\(c_k= \phi c_{k-1}\)
Откуда
\(c_k=\phi^k \frac{\sigma_{\epsilon}^2}{1-\phi^2}\)
Автокорреляционная функция
\(\rho_k=\frac{c_k}{c_0}=\phi^k\)
Предположим, чьл \(|\phi |< 1\) в этом случае \(\rho_k->0\) при \(k->\infty\)
Поведение процесса, выборочной и модельной (True ACF) автокорреляционной функции при различных параметрах \(\phi\) можно изучить в прилагаемом ниже фрейме на примере процесса \(AR(1)\).
Пример моделирования AR(1) на R при \(\phi=0.9\)
phi <- 0.9
model <- list(ar= phi)
ar1<-armaSim(model,n=200)
matplot(ar1,main= "Simulated AR(1) process",type = "l",lwd=3,col="blue")
Процесс AR(1) стационарен тогда и только тогда, \(|\phi|<1\), что эквиваленетно тому, что корень уравнения \(\phi(B) = 0\) по модулю больше 1.
Для того чтобы визуально увидеть зависимость ряда от прошлого полезно строить график \(y_t\) от \(y_{t-1}\) и увидеть положительную корреляцию между ними
plot(ar1[,1,1],zlag(ar1[,1,1]), ylab = expression(y[t]),xlab = expression(y[t-1]),type='p',col = 'blue')
Остается корреляция между \(y_t\) от \(y_{t-2}\)
plot(ar1[,1,1],zlag(ar1[,1,1],2), ylab = expression(y[t]),xlab = expression(y[t-2]),type='p',col = 'blue')
Пусть процесс c нулевым среднем представим в виде
\(y_t=\phi_1 y_{t-1}+\phi_2 y_{t-2}+ \epsilon_t\)
или, используя оператор сдвига
\(\phi (B)x_t = \epsilon_t\)
где \(\phi(B)=1-\phi_1 B- \phi_2 B^2\)
Можно покачать, что для стационарности AR(2) процесса необходимо и достаточно, чтобы корни характеристического уравнения \(\phi(B) = 0\) или \(1-\phi_1 B- \phi_2 B^2=0\) по модулю были больше 1. Корни характеристического уравнения легко найти
\(B_{1,2}=\frac{\phi_1+-\sqrt{\phi_1^2+4\phi_2}}{-2\phi_2}\)
Абсолютные значения корней должны быть больше 1. Отсюда можно получить условия на \(\phi_1,\phi_2\) а именно
\(\phi_1+\phi_2<1\),\(\phi_2-\phi_1<1\) и \(|\phi_2|<1\)
Вычислим автоковариационную и автокорреляционную функции процесса AR(2) Умножая предствление процесса на \(y_{t-k}\) и, беря математическое ожидание, получим
\(c_k= \phi_1c_{k-1}+\phi_2c_{k-2}\) \(:k=1,2,....\)
автокорреляционная функция
\(\rho_k= \phi_1\rho_{k-1}+\phi_2\rho_{k-2}\) \(:k=1,2,....\)
Последнее уравнение носит название уравнение Юла-Уокера. Его обычно решают численно, но существует и другой способ нахождения \(\rho_k\) обозначим через \(G_1,G_2\) корни характеристического уравнения \(1-\phi_1 B- \phi_2 B^2=0\)
\(G_1= \frac{\phi_1+\sqrt{\phi_1^2+4\phi_2}}{2}\)
\(G_2= \frac{\phi_1-\sqrt{\phi_1^2+4\phi_2}}{2}\)
Если \(G_1\ne G_2\) то можно показать,что
\(\rho_k=\frac{(1-G_2^2)G_1^{k+1}- (1-G_1^2)G_2^{k+1}}{(G_1-G_2)(1+G_1G_2)}\)
Eсли корни комплексны, тогда
\(\rho_k=R^k\frac{sin(\Theta k+\Phi)}{sin\Phi}\)
где \(R =\sqrt{-\phi_2}\), \(cos\Theta=\phi_1/(2\sqrt{-\phi_2})\) и \(tan\Phi=(1-\phi_2)/(1+\phi_2)\)
Поведение процесса, выборочной и модельной (True ACF) автокорреляционной функции при различных параметрах \(\phi_1,\phi_2\) можно изучить в прилагаемом ниже фрейме на примере процесса \(AR(2)\).
Пример моделирования AR(2) на R при \(\phi_1=0.4,\phi_2=-0.5\)
phi <- c(0.4,-0.5)
model <- list(ar= phi)
ar2<-armaSim(model,n=200)
matplot(ar2,main= "Simulated AR(2) process",type = "l",lwd=3,col="blue")
Чтобы вычислить дисперсию процесса AR(2) возьмем оператор дисперсии от обеих частей \(y_t=\phi_1 y_{t-1}+\phi_2 y_{t-2}+ \epsilon_t\)
\(c_0=D[y_t]=(\phi_1^2+phi_2^2)+2\phi_1\phi2+\sigma_{\epsilon}^2\) \((*)\)
У нас есть уранение \(c_k= \phi_1c_{k-1}+\phi_2c_{k-2}\) \(:k=1,2,....\) при \(k=1\) оно примет вид \(c_1= \phi_1c_{0}+\phi_2c_{1}\) Уравненике \((*)\) и последнее уравнение нам даст
\(c_0=\frac{1-\phi_1}{1+\phi_2}\frac{\sigma_{\epsilon}^2}{(1-\phi_2)^2-\phi_1^2}\)
Процесс вида
\(y_t=\phi_1 y_{t-1}+\phi_2 y_{t-2}+...-+\phi_p y_{t-p}+ \epsilon_t\) \((1)\)
называется процессом авторегрессии порядка \(p\)
В операторной форме
\(\phi (B)y_t = \epsilon_t\)
\((1-\phi_1 B+...+\phi_p B^p)y_t = \epsilon_t\)
характеристическое уравнение
\(1-\phi_1 B+...+\phi_p B^p= 0\)
Процесс авторегрессии порядка \(p\) стационарен тогда и только тогда корни характеристического уравнения по модулю больше единицы, или корни лежат вне единичной окружности \(|z|= 1\)
Пример
\(\phi_1=0.6,\phi_2=-0.3,\phi_3= 0.2\)
phi1<-0.6
phi2<--0.3
phi3 <- 0.2
par(mfrow = c(1, 1), cex = 0.9)
armaRoots(c(phi1,phi2,phi3),lwd = 8, n.plot = 400, digits = 8)
## re im dist
## 1 1.59042489 0.000000 1.590425
## 2 -0.04521244 1.772504 1.773080
## 3 -0.04521244 -1.772504 1.773080
Умножая (1) на \(y_{t-k}\), и ,разделив на \(c_0=D[y_t]\), берем математическое ожидание от обоих частей полученного соотношения, получим
\(\rho_k=\phi_1\rho_{k-1}+...+\phi_p \rho_{k-p}\)
Полагая последовательно \(k=1,..,p\), получим систему линейных алгебраических уравнений
\(\rho_1=\phi_1+...+\phi_p \rho_{p-1}\)
\(\rho_2=\phi_1\rho_1+...+\phi_p \rho_{p-2}\)
\(...\)
\(\rho_p=\phi_1\rho_{p-1}+...+\phi_p\)
Эта система уравнений носит название Юла-Уокера. Зная набор чисел \(\phi_1,\phi_2,...,\phi_p\) можно из системы вычислить \(\rho_1,\rho_2,...,\rho_p\) и наоборот.
С уравнением Юла Уокера связано появление функции частной автокорреляции (PACF). Последовательно будем решать их для \(k=1,2,...,p\) При \(k=1\) оно имет вид \[\rho_1=\phi_1\] Решение его обозначим \(\phi_{1,1}\).
Для \(k=2\) \[\rho_1=\phi_1+\phi_2\rho_{1}\]
\[\rho_2=\phi_1\rho_1+\phi_2\] Решение его обозначим \(\phi_{2,1},\phi_{2,2}\). И так далее повышаем порядок уравнения и решения для порядка \(k\) его обозначаем \(\phi_{k,1},\phi_{k,2},..., \phi_{k,k}\). Функция от \(k\), поученная из решений уравнения при старших степенях уравнений \[\phi_{1,1},\phi_{2,2},...,\phi_{p,p},...,\phi_{k,k}\] получила название частной автокорреляционной функции (PACF). Для AR(p) она по построению имеет отличные от нуля значения до \[\phi_{1,1},\phi_{2,2},...,\phi_{p,p}\] далее при \(k>p\) должны следовать нули так как соответствующие \(\phi_k\) в модели AR(p) имеются в наличии только до порядка \(p\). На практике конечно нули мы не увидим однако, дисперсия \[D[\phi_{k,k}]\approx\frac{1}{n}\] попадание значений PACF в полосу \(\pm\frac{1}{\sqrt{n}}\) является сигналом к идентификации порядка модели \(p\).
Выражение для дисперсии процесса получим из (1), умножив его на \(y_t\), и , беря математическое ожидание, получим
\(D[y_t]= c_0= \frac{\sigma_{\epsilon}^2}{1-\phi_1\rho_1-... -\phi_p\rho_p}\)
Поведение процесса, выборочной и модельной (True ACF,PACF) автокорреляционной функции и частной автокорреляционной при различных параметрах \(\phi_1,\phi_2,\phi_3\) можно изучить в прилагаемом ниже фрейме на примере процесса \(AR(3)\).
PACF и ACF служат прекрасным средством для идентификации модели и их порядков на практике. Сведем наши знания об этих функциях в следующую таблицу
par(mfrow = c(2, 2), cex = 1.0,col = "blue",lwd = 3)
phi1 = 0.6
phi2 = -0.3
phi3 = 0.3
modelAR3 <- list(ar=c(phi1,phi2,phi3))
armaTrueacf(modelAR3,lag.max = 15,type = "both", doplot = TRUE)
theta1 = 0.5
theta2 = 0.3
theta3 = 0.4
modelMA3 <- list(ma=c(theta1,theta2,theta3))
armaTrueacf(modelMA3,lag.max = 15,type = "both", doplot = TRUE)
Таблица почему-то не скомпилилась в html файл. Поэтому,использую операцию copy-paste перенесем R код в RStudio и посмотрим таблицу там.
Потренировать умение правильно идентификацировать заведомо известную модель AR(3) или MA(3) по выборочной ACF,PACF поможет следующий фрейм.
Процесс с нулевым среднем вида
\(y_t= \phi_1y_{t-1}+ ...+ \phi_py_{t-p}+\epsilon_t- \theta_1\epsilon_{t-1}-..-\theta_q \epsilon_{t-q}\)
называется cмешаным процессом авторегрессии-скользящего среднего порядка \(p,q\), обозначается \(ARMA(p,q)\) В операторной записи
\((1-\phi_1B-...-\phi_pB^P)y_t= (1-\theta_1B-...-\theta_pB^q)\epsilon_t\)
\(\phi_p(B)y_t= \theta_q(B)\epsilon_t\)
Начнем с простейшей модели ARMA(1,1).
\(y_t= \phi_1y_{t-1}+\epsilon_t- \theta_1\epsilon_{t-1} (2)\)
Так как
\(E\epsilon_t y_t= E[\epsilon_t\phi_1y_{t-1}]+E[\epsilon_t\epsilon_t]- E[\theta_1\epsilon_t\epsilon_{t-1}]= \sigma_{\epsilon}^2\)
\(E\epsilon_{t-1} y_t= E[\epsilon_{t-1}\phi_1y_{t-1}]+E[\epsilon_{t-1}\epsilon_t]- E[\theta_1\epsilon_{t-1}\epsilon_{t-1}]= \phi_1\sigma_{\epsilon}^2-\theta_1\sigma_{\epsilon}^2= \sigma_{\epsilon}^2(\phi_1-\theta_1)\)
Если умножить на \(y_{t-k}\) и взять математическое ожидание , то прдем к следуюшей системе соотношений \[c_0=\phi_1c_1+[1-\theta_1(\phi_1-\theta_1)]\sigma_{\epsilon}^2\] \[c_1= \phi_1c_0-\theta_1\sigma_{\epsilon}^2\] \[c_k= \phi_1c_{k-1}\]
Разрешая это систему получим, что \[\rho_k= \frac{(1-\theta_1\phi_1)(\phi_1-\theta_1)}{1-2\theta_1\phi_1-\theta_1^2}/phi_1^k\] для \(k>0\).
Таким образом ACF убывает с ростом \(k\) также как и модель AR(1)
Запишем модель в операторном виде. \[\phi_p(B)y_t=\theta_q(B)\epsilon_t\] Без доказательства (громоздкие формулы) примем следующий факт, что в ACF первый \(q\) значений ведут себя произвольно,а начиная с задержки \(q+1\) идет экспоненциальное затухание аналогичное модели AR(p).
Стационарность модели зависит от характеристического многочлена \(\phi_p(B)=0\) в том смысле,что корни его должны лежать вне единичного круга \(|B| = 1|\).
Обратимость определяется многочленом \(\theta_q(B)=0\).Корни его соответственно должны лежать вне единичного круга \(|B| = 1|\).
Идентификация смешаных моделей только по ACF и PACF затруднительна и может привести к ошибке. Для примера приведем модель ARMA(1,1). А библилотеке TSA (версия 3.2.3) моделируется ARMA(1,1) процесс вид которого
library(TSA)
data("ma1.1.s")
matplot(ma1.1.s, lwd = 2,col = "blue",type ="l")
Его ACF и PACF выглядят так
acf(ma1.1.s)
pacf(ma1.1.s)
Что позволяет выдвинуть гипотезу о модели AR(1).
Однако анализ остатков (в следующей лекции о нем) показывает, что в остатках не белый шум. Для облегчения идентификации смешаных моделей Tsau и Tiao в 1984 году предложили метод идентификации, получивший название Extended ACF. Суть его в одновременной проверке значимости оценок ACF,PACF. По результатам которого выводится таблица крестиков и ноликов. По левому верхнему углу устойчивой границы между которыми можно сделать вывод о предполагаемых порядках модели. Конечно только анализ остатков после оценки модели поможет сделать окончательный вывод
eacf(ma1.1.s)
## AR/MA
## 0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 x o o o x o o o o o o o o x
## 1 x o o o o o o o o o o o o o
## 2 x o o o o o o o o o o o o o
## 3 x x x x o o o o o o o o o o
## 4 x x o x x o o o o o o o o o
## 5 x x o o x x o o o o o o o o
## 6 o o x x x x o o o o o o o o
## 7 o o x o o x o o o o o o o o
Для практического ознакомления со смешаными моделями предлагаю следующий фрейм.